/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: Lenovo
 * Date: 2025-03-31
 * Time: 8:19
 */
public class Main {
    // 面向接口编程：接收任何具有飞行能力的对象
    public static void flying(Flyable flyable) {
        flyable.fly();// 多态调用
    }
    // 面向接口编程：接收任何具有游泳能力的对象
    public static void swimming(Swimmable swimmable) {
        swimmable.swim();
    }
    // 面向接口编程：接收任何具有跑步能力的对象
    public static void running(Runable runnable) {
        runnable.run();
    }
    public static void main(String[] args) {
        // 创建具体动物实例
        Bird bird = new Bird(2);
        Duck duck = new Duck(5);
        // 调用基础行为方法
        bird.eat();//输出：鸟吃鸟粮（继承自Animal）
        duck.eat();//输出：鸭子吃饲料（继承自Animal）

        // 通过接口调用特殊能力
        flying(bird);//输出：鸟有飞行能力（Flyable接口）
        //flying(duck);  // 编译错误：Duck未实现Flyable接口
        swimming(duck);//输出：鸭子有游泳能力（Swimmable接口）
        running(duck);//输出：鸭子可以跑步（Runnable接口）
        // 新增Robot后可直接调用，无需任何调整
        Robot robot = new Robot();
        running(robot);  // 输出：机器人有跑步能力

    }
}
